Datenbankablage für ArchiveLink einrichten
Mit dem miniSAP wird eine komplette Basiskomponente, BC resp. SAP_BASIS, bereitgestellt. Wer im Umfeld dieser Komponente tätig ist, z.B. im Bereich des Records Management BC-SRV-RM und das miniSAP diesbezüglich für Testzwecke einsetzt, wird schnell auf die Notwendigkeit einer ArchiveLink-fähigen Ablage stoßen. Der folgende Beitrag beschreibt die Einrichtung einer solchen. Darüber hinaus wird ein Programm vorgestellt, mit dem beliebige lokale Dateien archiviert werden können.
Zu Beginn möchte ich kurz den Hinweis 595563 – Datenbankablage für ArchiveLink – erwähnen. Dieser beschreibt selbige Vorgehensweise mit ähnlichen Schritten.
1. Tabelle kopieren
Im ersten Schritt richten wir den Zielbereich ein, in dem die Dokumente abgelegt werden. Wie der Titel des Beitrages schon vermuten lässt, handelt es sich hierbei um eine Datenbanktabelle. Mit der Transaktion SE80 ins Paket SDOK wechseln, die Tabelle SDOKCONT1 suchen und via Kontextmenü als lokales Objekt kopieren z.B. mit dem Namen ZDOKCONT1. Danach ins eigene Paket wechseln, die Tabelle in Bearbeitung nehmen, dann die Erweiterungskategorie der Tabelle definieren, die Tabelle speichern und aktivieren. Damit haben wir die Voraussetzung geschaffen, dass Dokumente hier abgelegt werden können.
2. Content Repository einrichten
Im folgenden Schritt richten wir ein Content Repository ein. Damit definieren wir im miniSAP-System den Bereich über den mit dem Archivsystem, welches ja in unserem Fall die Tabelle aus Schritt eins ist, kommuniziert wird. Wird z.B. ein Dokument archiviert, so muss das Content Repository (CR) und ein eindeutiger Identifikator, auch Archiv-Dokument-ID (ArcDocID) genannt, definiert werden. So kann jedes Dokument eindeutig identifiziert werden. Mit der Transaktion OAC0 richten wir z.B. das Content Repository ZA ein.
|
3. Dokumentart einrichten
Eine Dokumentart definiert eine eindeutige technische Bezeichnung für eine bestimmte Dokumentensorte, z.B. HRICONTRAC (Human Resource Incoming Work Contract) für einen Arbeitsvertrag. Wir richten uns eine eigene Dokumentart mit der Transaktion OAC2 ein, z.B. ZTEXT für eine Textdatei beliebigen Inhalts.
|
4. Dokumentverknüpfung einrichten
Die definierte Dokumentart muss nun noch mit einem Business-Objekt (BO) verknüpft werden. Ein BO beschreibt die zum ihm gehörigen Methoden, Attribute und Schlüsselfelder im BO-Repository. Wir wählen hier das BO SOFM (Office Document). Mit der Transaktion OAC3 wird diese Dokumentverknüpfung eingerichtet. Hier muss dann auch das unter Schritt zwei definierte CR sowie eine Verknüpfungstabelle angegeben werden. In dieser Verknüpfungstabelle werden die eindeutigen Identifikatoren des archivierten Dokumentes unter dem anwendungsspezifischen Schlüssel abgelegt. Wir wählen hier den Standard TOA01.
|
5. Report implementieren
Mit dem nun folgenden Programm können beliebige Dokumente archiviert und deren Verknüpfungseinträge geschrieben werden.
“-Begin—————————————————————–
Report Z_ARCHIVEFILE.
“-Variables———————————————————
Data tabFileName Type filetable.
Data rc Type sy-subrc.
Data UserAction Type i.
Data ArcDocID Type toa01-arc_doc_id.
“-GUI—————————————————————
Parameter FileName Type sapb-sappfad Lower Case.
Parameter ContRep Type toaar-archiv_id.
Parameter DocTyp Type toadd-doc_type.
Selection-Screen Skip 1.
Parameter BusObj Type toaom-sap_object.
Parameter ArObj Type toaom-ar_object.
Parameter ObjID Type sapb-sapobjid Lower Case.
Selection-Screen Skip 1.
Selection-Screen PushButton /1(79) ArcDoc User-Command ArcDoc.
Selection-Screen Skip 1.
Parameter DocID Type toa01-arc_doc_id.
“-Initialization—————————————————-
Initialization.
ArcDoc = ‘Put document into archive'(001).
“-Event press button to select file———————————
At Selection-Screen On Value-Request For FileName.
Clear FileName.
Clear tabFileName.
Call Method cl_gui_frontend_services=>file_open_dialog
Exporting
window_title = ‘Datei zum Upload in das Archiv’
multiselection = abap_false
file_filter = ‘*.*’
Changing
file_table = tabFileName
rc = rc
user_action = UserAction.
If UserAction = 0.
Read Table tabFileName Into FileName Index 1.
EndIf.
“-Main————————————————————–
At Selection-Screen.
Case sy-ucomm.
When ‘ARCDOC’.
Call Function ‘ARCHIVOBJECT_CREATE_FILE’
Exporting
ARCHIV_ID = ContRep
DOCUMENT_TYPE = DocTyp
PATH = FileName
Importing
ARCHIV_DOC_ID = ArcDocID
Exceptions
ERROR_ARCHIV = 1
ERROR_COMMUNICATIONTABLE = 2
ERROR_UPLOAD = 3
ERROR_KERNEL = 4
OTHERS = 5.
If sy-subrc = 0.
DocID = ArcDocID.
Call Function ‘ARCHIV_CONNECTION_INSERT’
Exporting
ARCHIV_ID = ContRep
ARC_DOC_ID = ArcDocID
AR_OBJECT = ArObj
OBJECT_ID = ObjID
SAP_OBJECT = BusObj
DOC_TYPE = DocTyp
Exceptions
ERROR_CONNECTIONTABLE = 1
OTHERS = 2.
If sy-subrc = 0.
Message ‘Success’ Type ‘S’.
Else.
Call Function ‘ARCHIVOBJECT_DELETE’
Exporting
ARCHIV_ID = ContRep
ARCHIV_DOC_ID = ArcDocID
Exceptions
ERROR_ARCHIV = 1
ERROR_COMMUNICATIONTABLE = 2
ERROR_KERNEL = 3
OTHERS = 4.
Message ‘Connection insert not successful’ Type ‘E’.
EndIf.
Else.
Message ‘Archiving not successful’ Type ‘E’.
EndIf.
EndCase.
“-End——————————————————————-
6. Report testen
Zugegeben ist die von mir gewählte Object-ID nicht gerade sinnvoll, da sie eigentlich mit den Schlüsselfeldern des BO korrespondieren sollte, aber für einen Test reicht es aus. Nach dem Aufruf muss in der Tabelle TOA01 ein Eintrag vorliegen und in der Tabelle ZDOKCONT1 müssen ebenfalls Einträge vorhanden sein.
|
7. Erfolg testen
Mit der Transaktion SE37 kann das FM ARCHIVOBJECT_DISPLAY aufgerufen werden. Hier ist die ArcDocID und das Content Repository zu übergeben. Mit Ausführung des FM wird der Document Viewer gestartet und das archivierte Dokument angezeigt. Sofern alles korrekt eingerichtet ist, sollte nun das Dokument sichtbar sein.
|
Mit relativ wenig Aufwand kann man sich auf diesem Wege eine ArchiveLink-fähige Ablage in einem miniSAP zur Verfügung stellen und diese auch in anderen Applikationen nutzen, z.B. dem Folders Management.
- PowerShell mit ABAP nutzen - 17. März 2018
- SAP GUI Scripting Rekorder mit Windows PowerShell - 22. November 2016
- 64-bit Programme mit dem SAP GUI für Windows ausführen - 20. November 2016
Hallo,
vielen Dank für diese super Seite, habe schon viele verschiedene Beiträge sehr gefeiert.
Ich habe jedoch ein Problem beim der Ablage von Dokumenten in das Archiv. Die Ablage funktioniert einwandfrei, jedoch erstellt er mir in dem Verzeichnis, aus dem ich die abzulegende Datei auswähl 3 neue Dateien.
Die erste Datei ist eine “.trc” Datei.
Die zweite Datei ist heißt immer gleich “dev_http”.
Die dritte Datei heißt jedesmal anders.
Kann mir jemand sagen, ob ich verhindern kann, dass diese Dateien erstellt werden?
Vielen Lieben Dank !!!
Dominic
Hallo,
ich habe entsprechend der Anleitung das CR und OAC2/3-Customizing eingereicht. Beim Testupload erhalte ich jedoch folgende Fehlermeldung:
HTTP error: 401 Unauthorized
Message no. CMS025
Diagnosis
Error in accessing via HTTP
401 Unauthorized
Anschließend habe ich in der Transaction SICF einen HTTP-User hinterlegt (Communication User mit SAP_ALL). Trotzdem erhalte ich die selbe Fehlermeldung wieder. Kann mir jemand weiterhelfen?